iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
SideProject30

HOW TO GO系列 第 22

22. Entity Component System (1)

  • 分享至 

  • xImage
  •  

ECS, Entity Component System

今天先分享一種軟體架構模式:Entity component system

不同於物件導向模式 (OOP),是將其拆成三個部分實體 (Entity)、組件 (Component) 及系統 (System),其目的之一為提高擴充性及降低複雜度,使用場景通常是於遊戲開發上。

  1. 實體 (Entity):可以視為一個具體的物件,裡面會包含多個組件,用來描述這個物件
  2. 组件 (Component):定義某種特定特性,僅存放資料
  3. 系统 (System):針對定義好的組件,定義行為如何執行

舉例:聊天機器人

依照這個概念簡單設計大致上會長這樣

實體

  • Chatbot Entity
    • Render Component
    • Chat Component
    • Input Component

組件

  • Render Component
    • 圖片 (byte)
  • Chat Component
    • 對話 (string)
  • Input Component
    • 是否可以輸入 (bool)

系統

  • Render System
    • 實作繪製圖片功能
  • Chat System
    • 實作回應功能
  • Input System
    • 實作檢查是否可以輸入

以這種方式實作後,資料與行為就分開了


上一篇
21. ebiten (5)
下一篇
23. Entity Component System (2)
系列文
HOW TO GO30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言